package aop;


import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;

import java.util.Arrays;

public class UserServiceLogger {
    private static final Logger log = Logger.getLogger(UserServiceLogger.class);
/*    @Before("execution(* service.UserService.*(..))")
    public void before(JoinPoint jp) {
        log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法，方法入参" + Arrays.toString(jp.getArgs()));
    }*/
  /*  @AfterReturning(pointcut = "execution(* service.UserService.*(..))")
    public void afterReturning(JoinPoint jp, Object result) {
        log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法. 方法返回值是" + result);
    }
    */
    @Pointcut("execution(* service.UserService.*(..))")
    public void Pointcut(){}
    @Before("Pointcut()")
    public void before(JoinPoint jp) {
        log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法，方法入参" + Arrays.toString(jp.getArgs()));
    }
   /* @AfterReturning(pointcut = "Pointcut()," ,returning="returnValue")
    public void afterReturning(JoinPoint jp, Object result) {
        log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法. 方法返回值是" + result);
    }*/
   @AfterThrowing("execution(* service.UserService.*(..))")
   public void afterReturning(JoinPoint jp, RuntimeException e) {
       log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法. 方法返回值是" + e);
   }/*
   @After("execution(* service.UserService.*(..))")
    public void afterLogger(JoinPoint jp) {
       log.info(jp.getSignature().getName()+"方法执行结束");
   }*/


}
